package com.demo;

public enum CompanyEnum {
    SF("顺丰速运", 1001), YTO("圆通速递", 1002), STO("申通物流", 1003), YD("韵达快运", 1004), YZPY("中国邮政", 1005);
    private CompanyEnum(String company, int code) {
        this.company = company;
        this.code = code;
    }
    private String company; // 公司名称
    private int code; // 公司编码
    public String getCompany() {
        return company;
    }
    public void setCompany(String company) {
        this.company = company;
    }
    public int getCode() {
        return code;
    }
    public void setCode(int code) {
        this.code = code;
    }
    //根据物流公司名字获取对应的编码
    public static int getCodeByCompany(String company) {
        for (CompanyEnum c : CompanyEnum.values()) {
            if (c.getCompany().equals(company.trim())) {
                return c.code;
            }
        }
        return 0;
    }
    //根据物流公司编码获取对应的名字
    public static String getCompanyByCode(int code) {
        for (CompanyEnum c : CompanyEnum.values()) {
            if (c.getCode() == code) {
                return c.getCompany();
            }
        }
        return null;
    }

    public static void main(String[] args) {
        //返回此枚举常量的名称,继承自java.lang.Enum类,通常重写该方法以实现相关操作。输出->SF
        System.out.println(CompanyEnum.SF.toString());
        //返回此枚举常量的名称。输出->SF
        System.out.println(CompanyEnum.SF.name());
        //返回枚举常量的序数（它在枚举声明中的位置，其中初始常量序数为零）。输出->0
        System.out.println(CompanyEnum.SF.ordinal());
        //获取枚举中的常量个数。输出->5
        System.out.println(CompanyEnum.SF.values().length);
        //返回带指定名称的指定枚举类型的枚举常量。输出->顺丰速运
        System.out.println(CompanyEnum.SF.valueOf(CompanyEnum.class, "SF").getCompany());
        //比较此枚举与指定对象的顺序;SF位置是0,YTO位置是1,结果为 0-1=-1。输出->-1
        System.out.println(CompanyEnum.SF.compareTo(CompanyEnum.YTO));
        //返回与此枚举常量的枚举类型相对应的 Class 对象。输出->class com.cndmss.util.CompanyEnum
        System.out.println(CompanyEnum.SF.getDeclaringClass());
        //。输出->true
        System.out.println(CompanyEnum.SF.name().equals("SF"));
        //。输出->true
        System.out.println(CompanyEnum.SF.equals(CompanyEnum.SF));
        //。输出->false
        System.out.println(CompanyEnum.SF.equals(CompanyEnum.YTO));

    }

}
